package com.mindskip.xzs.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mindskip.xzs.domain.BatchUser;
import com.mindskip.xzs.repository.BatchUserMapper;
import com.mindskip.xzs.service.BatchUserServer;
import org.springframework.stereotype.Service;

import java.util.List;

// 标注为Service层的实现类
@Service
public class BatchUserServerImpl extends ServiceImpl<BatchUserMapper, BatchUser> implements BatchUserServer {

    // 根据批次ID获取批次用户列表
    @Override
    public List<BatchUser> getBatchUserByBatchId(String batchId) {
        // 创建查询条件包装器
        QueryWrapper<BatchUser> queryWrapper = new QueryWrapper<>();
        // 添加条件为批次ID等于传入的批次ID
        queryWrapper.eq("batch_id", batchId);
        // 返回符合条件的批次用户列表
        return this.baseMapper.selectList(queryWrapper);
    }

    // 根据批次用户ID列表删除批次用户
    @Override
    public int deletedByBatchId(List<Integer> batchUserIds) {
        try {
            // 根据批次用户ID列表批量删除批次用户
            this.baseMapper.deleteBatchIds(batchUserIds);
            // 删除成功返回1
            return 1;
        } catch (Exception e) {
            // 捕获异常并打印
            System.out.println(e);
            // 删除失败返回0
            return 0;
        }
    }

    // 根据用户ID获取批次用户列表
    @Override
    public List<BatchUser> getBatchUserByUserId(Integer userId) {
        // 创建查询条件包装器
        QueryWrapper<BatchUser> batchUserQueryWrapper = new QueryWrapper<>();
        // 添加条件为用户ID等于传入的用户ID
        batchUserQueryWrapper.eq("user_id", userId);
        // 返回符合条件的批次用户列表
        return this.baseMapper.selectList(batchUserQueryWrapper);
    }

    // 根据批次ID列表获取批次用户列表
    @Override
    public List<BatchUser> getBatchUserByBatchIds(List<String> batchIds) {
        // 调用自定义的批次用户查询方法，传入批次ID列表
        return this.baseMapper.getBatchUserByBatchIds(batchIds);
    }
}
